07. 从零开始编写Store

了解一下Redux的createStore()方法实际创建Store的过程

const createStore = (reducer) => {
  let state;
  let listeners = [];

  const getState = () => state;

  const dispatch =(action) => {
    state = reducer(state, action);
    listeners.forEach(listener => listener());
  };

  const subscribe = (listener) => {
    listeners.push(listener);
    return () => {
      listeners = listeners.filter(l => l !== listener);
    }
  }
  dispatch({});
  return { getState, dispatch, subscribe };  
}

//最终代码 http://jsbin.com/lecuwat/edit?js,output